using System;
using System.Net.NetworkInformation;

namespace FactoryPatternExample
{
    // 定义产品接口
    public interface Product
    {
        void Use();
    }

    // 定义具体产品A
    public class ConcreteProductA : Product
    {
        public void Use()
        {
            Console.WriteLine("Using ConcreteProductA");
        }
    }

    // 定义工厂接口
    public interface Factory
    {
        Product CreateProduct();
    }

    // 定义具体工厂
    public class ConcreteFactoryA : Factory
    {
        public Product CreateProduct()
        {
            return new ConcreteProductA();
        }
    }

    // 程序入口点
    class Program
    {
        static void Main(string[] args)
        {
            // 使用工厂创建产品
            Factory factory = new ConcreteFactoryA();
            Product product = factory.CreateProduct();
            product.Use();

            Console.ReadKey(); // 等待用户按键，以便看到输出结果
        }
    }
}
//输出结果： Using ConcreteProductA